package org.example.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "resignation_application")
public class ResignationApplication {
    /**
     * 离职id
     */
    @TableId(value = "resignation_id", type = IdType.INPUT)
    private Integer resignationId;

    /**
     * 申请日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "application_date")
    private Date applicationDate;

    /**
     * 员工工号
     */
    @TableField(value = "employee_id_number")
    private String employeeIdNumber;

    /**
     * 员工姓名
     */
    @TableField(value = "employee_name")
    private String employeeName;

    /**
     * 身份证号
     */
    @TableField(value = "id_card_number")
    private String idCardNumber;

    /**
     * 部门
     */
    @TableField(value = "department")
    private String department;

    /**
     * 岗位
     */
    @TableField(value = "`position`")
    private String position;

    /**
     * 聘用形式
     */
    @TableField(value = "employment_form")
    private String employmentForm;

    /**
     * 入职日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "entry_date")
    private Date entryDate;

    /**
     * 部门主管
     */
    @TableField(value = "department_head")
    private String departmentHead;

    /**
     * 经办HR
     */
    @TableField(value = "handling_hr")
    private String handlingHr;

    /**
     * 预计离职日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "expected_resignation_date")
    private Date expectedResignationDate;

    /**
     * 离职原因
     */
    @TableField(value = "reason_for_resignation")
    private String reasonForResignation;

    /**
     * 工作交接人
     */
    @TableField(value = "work_handover_person")
    private String workHandoverPerson;

    /**
     * 工作交接时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "work_handover_time")
    private Date workHandoverTime;

    /**
     * 工作部门交接确认
     */
    @TableField(value = "work_department_handover")
    private String workDepartmentHandover;

    /**
     * 工作交接完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "work_complete_time")
    private Date workCompleteTime;

    /**
     * 工作部门交接事项
     */
    @TableField(value = "work_department_matter")
    private String workDepartmentMatter;

    /**
     * 工作交接人确认
     */
    @TableField(value = "work_handover_confirmation")
    private String workHandoverConfirmation;

    /**
     * 财务交接人
     */
    @TableField(value = "financial_handover_person")
    private String financialHandoverPerson;

    /**
     * 财务交接完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "financial_complete_time")
    private Date financialCompleteTime;

    /**
     * 财务部门交接事项
     */
    @TableField(value = "Financial_department_matter")
    private String financialDepartmentMatter;

    /**
     * 财务交接确认
     */
    @TableField(value = "financial_handover_confirmation")
    private String financialHandoverConfirmation;

    /**
     * 行政交接人
     */
    @TableField(value = "administrative_handover_person")
    private String administrativeHandoverPerson;

    /**
     * 行政交接完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "administrative_handover_time")
    private Date administrativeHandoverTime;

    /**
     * 行政交接事项
     */
    @TableField(value = "administrative_handover_matters")
    private String administrativeHandoverMatters;

    /**
     * 行政交接确认
     */
    @TableField(value = "administrative_handover_confirmation")
    private String administrativeHandoverConfirmation;

    /**
     * 人事交接人
     */
    @TableField(value = "personnel_handover_person")
    private String personnelHandoverPerson;

    /**
     * 人事交接时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "personnel_handover_time")
    private Date personnelHandoverTime;

    /**
     * 人事交接事项
     */
    @TableField(value = "personnel_handover_matters")
    private String personnelHandoverMatters;

    /**
     * 人事交接确认
     */
    @TableField(value = "personnel_handover_confirmation")
    private String personnelHandoverConfirmation;

    /**
     * 离职者确认无误
     */
    @TableField(value = "resignation_confirmation")
    private String resignationConfirmation;

    /**
     * 离职签署日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "signing_date")
    private Date signingDate;

    /**
     * 沟通记录
     */
    @TableField(value = "communication_records")
    private String communicationRecords;

    /**
     * 部门主管确认
     */
    @TableField(value = "department_manager_confirmation")
    private String departmentManagerConfirmation;

    /**
     * 正式离职日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "official_resignation_date")
    private Date officialResignationDate;

    /**
     * HR确认
     */
    @TableField(value = "hr_confirmation")
    private String hrConfirmation;
}